package cn.pconline.autoclub.util.ubb.node;

import cn.pconline.autoclub.util.ubb.EscapeUtils;
import cn.pconline.autoclub.util.ubb.Node;

/**
 *
 * @author xhchen
 */
public class ListNode extends AbstractNode {

	public ListNode() {}

	private ListNode(String name, String attribute) {
		super.name = name;
		super.attribute = attribute;
	}

	@Override
	public StringBuilder getText(java.util.LinkedList<Node> stack) {
		// @fix 1当在编辑器里出现[list]fdsafda[/list]时，在帖子页显示该内容的时候为空
		// @fix 2当在编辑器里出现[list][*][size]fdsfds[size/]fdsfds[list]
		// @fix 1 to 现修改为当以上情况的时候，就仅显示该内容，不加任何标签
		// @fix 2 to 现修改为当标签不完整时，就补全
		
		StringBuilder sb = new StringBuilder();
		String[] items = text.toString().split("\\[\\*\\]");
		// @fix 1
		if (items == null || items.length <= 1) {
			sb.append(text);
		} else {
			// @fix 2
			sb.append("<ul");
			if ("1".equals(attribute)) {
				sb.append(" class=\"litype_1\" type=\"1\">");
			} else {
				sb.append(" class=\"litype_2\">");
			}
			for (String item : items) {
				// 如果item格式里没有[*]那么item格式就会变成  内容+<br/>+内容
				String[] contents = item.split("<br/>");
				for (String content : contents) {
					sb.append("<li >").append(content).append("</li>");
				}
				
			}

			sb.append("</ul>");
		}
		return sb;
	}

	@Override
	public void appendText(CharSequence text) {
		EscapeUtils.appendHtml(text, super.text);
	}

	@Override
	public Node copyWithoutText() {
		return new ListNode(name, attribute);
	}

	@Override
	public Node build(String name, String attribute) {
		return new ListNode(name, attribute);
	}

}
